package Controller.ClienteController;

import javax.swing.JOptionPane;

import DAO.ClienteDAO;
import Entidade.Cliente;
import Model.ClienteModel.ClienteConsultaModel;
import View.ClienteView.ClienteView;
import framework.mvc.GenericController;

public class ClienteConsultaController extends GenericController<Cliente> {
	public ClienteConsultaController() {
		super(new ClienteConsultaModel(), new ClienteDAO());
	}

	public void novo() {
		ClienteView clienteview = new ClienteView();
		clienteview.abrir();
		view.atualizarView();
	}

	public void alterar() {
		view.atualizarModel();
		Cliente clienteSelecionado = ((ClienteConsultaModel) model)
				.getClienteSelecionado();
		if (clienteSelecionado == null) {
			JOptionPane.showMessageDialog(null,
					"Selecione o Cliente que deseja alterar", "Erro",
					JOptionPane.ERROR_MESSAGE);
		} else {
			ClienteView clienteView = new ClienteView();
			clienteView.getModel().setEntidade(clienteSelecionado);
			clienteView.atualizarView();
			clienteView.abrir();
			view.atualizarView();
		}
	}

	public void excluir() {
		view.atualizarModel();
		Cliente clienteSelecionado = ((ClienteConsultaModel) model)
				.getClienteSelecionado();
		if (clienteSelecionado == null) {
			JOptionPane.showMessageDialog(null,
					"Selecione o Cliente que deseja excluir", "Erro",
					JOptionPane.ERROR_MESSAGE);
		} else {
			if (JOptionPane.showConfirmDialog(null,
					"Deseja realmente excluir este Cliente?") == JOptionPane.YES_OPTION) {
				getDao().excluir(clienteSelecionado);
				view.atualizarView();
			}
		}
	}

	public void fechar() {
		view.dispose();
	}
}
